// pages/search/index.js
import { request } from '../../request/http.js';
import regeneratorRuntime from '../../lib/runtime/runtime.js';

// inValue字符串一开始为空，如果有值会动态传递给handleChange  
// 然后handleChange里：判断值是否合法、将isFocus: true/false然后决定是否显示取消按钮 或是否请求数据       操作在900毫秒再请求后端数据（防抖）
// 如果点击取消按钮  重置goods和inValue isFocus（不显示取消）
// qsearch封装了发送请求的数据，请求后台goodsQsearch 将参数query传过去  重新赋值goods信息

Page({
  data: {
    goods: [],
    // 定时器, 用于用户输入防抖
    time: null,
    // 取消按钮是否显示
    isFocus: false,
    // 输入框的值
    inValue: ''
  },
  handleChange(e) {
    const { value } = e.detail;
    clearTimeout(this.data.time)
    let time = setTimeout((value) => {
      if (value.trim()) {
        this.setData({ isFocus: true })
        console.log(value);
        this.qsearch(value)
      } else {
        this.setData({ isFocus: false })
      }
    }, 900, value)

    this.setData({ time })
  },
  // 点击取消按钮
  handleCancel() {
    this.setData({ goods: [], inValue: '', isFocus: false })
  },
  // 发送请求获取数据
  async qsearch(query) {
    const res = await request({ name: 'goodsQsearch', data: { query } })
    this.setData({ goods: res.data.message })
  }
})